package minijava.visitor;

import minijava.syntaxtree.And;
import minijava.syntaxtree.ArrayAssign;
import minijava.syntaxtree.ArrayLength;
import minijava.syntaxtree.ArrayLookup;
import minijava.syntaxtree.Assign;
import minijava.syntaxtree.Block;
import minijava.syntaxtree.BooleanType;
import minijava.syntaxtree.Call;
import minijava.syntaxtree.ClassDeclExtends;
import minijava.syntaxtree.ClassDeclSimple;
import minijava.syntaxtree.Equal;
import minijava.syntaxtree.False;
import minijava.syntaxtree.Formal;
import minijava.syntaxtree.Identifier;
import minijava.syntaxtree.IdentifierExp;
import minijava.syntaxtree.IdentifierType;
import minijava.syntaxtree.If;
import minijava.syntaxtree.IntArrayType;
import minijava.syntaxtree.IntegerLiteral;
import minijava.syntaxtree.IntegerType;
import minijava.syntaxtree.LessThan;
import minijava.syntaxtree.MainClass;
import minijava.syntaxtree.MethodDecl;
import minijava.syntaxtree.Minus;
import minijava.syntaxtree.NewArray;
import minijava.syntaxtree.NewObject;
import minijava.syntaxtree.Not;
import minijava.syntaxtree.Plus;
import minijava.syntaxtree.Print;
import minijava.syntaxtree.Program;
import minijava.syntaxtree.This;
import minijava.syntaxtree.Times;
import minijava.syntaxtree.True;
import minijava.syntaxtree.VarDecl;
import minijava.syntaxtree.While;

public interface Visitor
{
	public void visit(Program node);
	public void visit(MainClass node);
	public void visit(ClassDeclSimple node);
	public void visit(ClassDeclExtends node);
	public void visit(VarDecl node);
	public void visit(MethodDecl node);
	public void visit(Formal node);
	public void visit(IntArrayType node);
	public void visit(BooleanType node);
	public void visit(IntegerType node);
	public void visit(IdentifierType node);
	public void visit(Block node);
	public void visit(If node);
	public void visit(While node);
	public void visit(Print node);
	public void visit(Assign node);
	public void visit(ArrayAssign node);
	public void visit(And node);
	public void visit(LessThan node);
	public void visit(Equal node);
	public void visit(Plus node);
	public void visit(Minus node);
	public void visit(Times node);
	public void visit(ArrayLookup node);
	public void visit(ArrayLength node);
	public void visit(Call node);
	public void visit(IntegerLiteral node);
	public void visit(True node);
	public void visit(False node);
	public void visit(This node);
	public void visit(NewArray node);
	public void visit(NewObject node);
	public void visit(Not node);
	public void visit(IdentifierExp node);
	public void visit(Identifier node);
}
